iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
0
Modern Web

師父領進門 修行在個人系列 第 20

20–JS挑戰–(15)–手機定位 + 打地鼠

  • 分享至 

  • xImage
  •  

到了最後一天,感受到現在都看得懂在幹嘛了,也可以看一些其他javascript的討論,但要實際想出來還是好難啊!!! 考完再來練練幾個我覺得很棒的題目,並試著用jQuery寫寫看。

  1. Geolocation
  • 由於Xcode安裝有些問題,沒有進行下去,等之後再嘗試手機app的使用。
  const arrow = document.querySelector('.arrow');
    const speed = document.querySelector('.speed-value');

    navigator.geolocation.watchPosition((data) => {
      console.log(data);
      speed.textContent = data.coords.speed;
      arrow.style.transform = `rotate(${data.coords.heading}deg)`;
    }, (err) => {
      console.err(err);
      alert('HEY! YOU GOTTA ALLOW THAT TO HAPPEN!!!');
    });


  1. 打地鼠!!!
  • function互相call
  • 圖片好可愛
    http://ithelp.ithome.com.tw/upload/images/20161228/20103331VNRxr99cHO.png
const holes = document.querySelectorAll('.hole')
  const scoreBoard = document.querySelector('.score')
  const moles = document.querySelectorAll('.mole')
  let lastHole, timeUp = false, score = 0

  function randomTime(min, max) {
    return Math.round(Math.random()*(max - min ) + min)
  }
  function randomHole(holes) {
    const idx = Math.floor(Math.random()*holes.length)
    const hole = holes[idx]
    if (lastHole === hole) {
      return randomHole(holes)
    }
    lastHole = hole
    return hole
  }
  function peep() {
    const time = randomTime(200,1000)
    const hole = randomHole(holes)
    hole.classList.add('up')
    setTimeout(()=>{
      hole.classList.remove('up')
      if(!timeUp){peep()}
    }, time)

  }

  function startGame() {
    scoreBoard.textContent = 0
    timeUp = false
    score = 0
    peep()
    setTimeout(()=>{
      timeUp = true
    }, 10000)
  }
  function hit(e) {
    if(!e.isTrusted){
      scoreBoard.textContent = 'cheated'
      return
    }
    score++
    this.classList.remove('up')
    scoreBoard.textContent = score
  }

  moles.forEach(mole => mole.addEventListener('click', hit))

真的很感謝Wes Bos ,教得很棒,推薦給所有要上不上,要下不下的新手們。

明天先來看看其他人的專案,想要好好學學Rxjs, vue 等把javascript更清楚。
考試將近,可能一天複習一個小的。考完後應該有些文章就完賽了,先把別人的鐵人看完。
最後想要用至少5天學會基本的D3.js 基本,未來小作品可能會需要。


上一篇
19–JS挑戰(14)–Video Speed Controller UI +Countdown Clock
下一篇
21- javascript 資料結構及演算法實作
系列文
師父領進門 修行在個人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言